home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 11 / FM Towns Free Software Collection 11.iso / t_os / tool / jyusho / jyusho.bas < prev    next >
BASIC Source File  |  1995-08-14  |  29KB  |  645 lines

  1. 10 '******************************************************************
  2. 20 '*                                                                *
  3. 30 '* 簡易データベースシステム 「和」~カズ~                        *
  4. 40 '*               簡易住所録   じゅうしょろくん                    *
  5. 50 '*                                                                *
  6. 60 '*                                          BY  NISHINA KAZUNARI  *
  7. 70 '*                                                                *
  8. 80 '******************************************************************
  9. 90 ON ERROR GOTO *ERROR_RT
  10. 100 MOUSE 0:SCREEN@0:CLS:COLOR 7:SV=0:OS=0:LINE(0,0)-(639,479),PSET,7,BF
  11. 110 SYMBOL(220,200),"ファイル読み込み中・・・",1,1,0
  12. 120 SYMBOL(220,230),"しばらくお待ち下さい",1,1,0
  13. 130 OPEN "I",#1,"jyusho.cfg"
  14. 140 LINE INPUT #1,FL$  '---------- データのファイル名
  15. 150 INPUT #1,DK        '---------- データの件数
  16. 160 INPUT #1,ITEM      '---------- 登録する項目の数
  17. 170 CLOSE #1
  18. 180 DIM NE$(ITEM,DK+1),W$(ITEM),WS(DK),SND%(10000):OPN=0
  19. 190 IF OPN=0 THEN
  20. 200  OPEN "I",#1,FL$:INPUT#1,DS
  21. 210  IF DS>DK THEN
  22. 220   SYMBOL(180,280),"警告:データの設定件数が足りないため",1,1,2:BEEP
  23. 230   SYMBOL(180,310),"     表示されないデータがあります。",1,1,2
  24. 240   DS=DK:WAIT 600
  25. 250  ENDIF
  26. 260  IF DS>0 THEN
  27. 270   FOR I=0 TO DS-1:FOR J=0 TO ITEM:INPUT#1,NE$(J,I):NEXT J,I
  28. 280  ENDIF
  29. 290  CLOSE #1
  30. 300 ELSE
  31. 310  OPEN "O",#1,FL$:PRINT #1,0:CLOSE#1
  32. 320 ENDIF
  33. 330 GOSUB *タイトル
  34. 340 'メインループ+++++++++++++++++++++++++++++++++++++++++++
  35. 350 *メイン:MOUSE 1,320,240,1
  36. 360 FLG=0:WHILE FLG=0
  37. 370 IF MOUSE(0)>=200 AND MOUSE(0)<=439 THEN
  38. 380 IF MOUSE(1)>=150 AND MOUSE(1)<=180 AND MOUSE(2,0)<>0 THEN
  39. 390  IF DS<DK THEN GOSUB *入 ELSE GOSUB *OVER:GOSUB *タイトル
  40. 400 ENDIF
  41. 410 IF MOUSE(1)>=200 AND MOUSE(1)<=230 AND MOUSE(2,0)<>0 THEN
  42. 420  GOSUB *整:GOSUB *タイトル
  43. 430 ENDIF
  44. 440 IF MOUSE(1)>=250 AND MOUSE(1)<=280 AND MOUSE(2,0)<>0 THEN GOSUB *出
  45. 450 IF MOUSE(1)>=300 AND MOUSE(1)<=330 AND MOUSE(2,0)<>0 THEN
  46. 460  GOSUB *更新:GOSUB *タイトル
  47. 470 ENDIF
  48. 480 IF MOUSE(1)>=350 AND MOUSE(1)<=380 AND MOUSE(2,0)<>0 THEN FLG=1
  49. 490 ENDIF
  50. 500 WEND:FLG=0
  51. 510 IF SV=1 THEN
  52. 520  GOSUB *画面に線:GOSUB *MOUSEON:LINE(100,100)-(539,379),PSET,0,BF,7
  53. 530  RESTORE *保存しますか
  54. 540  FOR M=0 TO 2:READ A$:SYMBOL(150,145+M*30),A$,1,1,0:NEXT
  55. 550  GOSUB *正否判定:IF KAKU=0 THEN GOSUB *更新
  56. 560 ENDIF
  57. 570 IF INKEY$="" THEN
  58. 580 GOSUB *画面に線:LINE(180,200)-(459,279),PSET,0,BF,7
  59. 590 SYMBOL(260,230),"終了しました。",1,1,0
  60. 600 GOSUB *MOUSEON:GOSUB *確認
  61. 610 ELSE
  62. 620 CLS:GOSUB *MOUSEOFF:RESTORE *STRL:READ A$:LS=1
  63. 630 WHILE A$<>"e":SYMBOL(250,460),A$,1,1,7:IF MOUSE(2,0)<>0 THEN LS=LS+1
  64. 640 FOR J=0 TO 40/LS:ROLL -LS:WAIT 1:NEXT:READ A$:WEND:WAIT 300
  65. 650 ENDIF
  66. 660 MOUSE 5:END
  67. 670 *保存しますか:DATA データが保存されていません。
  68. 680 DATA このままでは更新したデータが消滅します。
  69. 690 DATA データを保存しますか?,しない,する
  70. 700 *STRL:DATA "     Staff",,,"  produced by",Nishina Kazunari,
  71. 710 DATA "   design by",Nishina Kazunari,,"   program by"
  72. 720 DATA Nishina Kazunari,,"   voice by"," Nishina Akiko",,,,,,,
  73. 730 DATA " presented by",,"  NintonSoft",,,,"e"
  74. 740 '素晴らしきサブルーチン群----------------------------------
  75. 750 *OVER:GOSUB *画面に線:LINE(200,190)-(439,289),PSET,0,BF,7:BEEP
  76. 760  SYMBOL(220,200),"     件数不足です",1,1,2
  77. 770  SYMBOL(210,230),"データを追加したい場合は、",1,1,0
  78. 780  SYMBOL(210,260),"コンフィグファイルを書換えて下さい。",1,1,0
  79. 790  GOSUB *MOUSEON:GOSUB *確認:RETURN
  80. 800 *MOUSEOFF:MX=MOUSE(0):MY=MOUSE(1):MOUSE 1,MX,MY,0:RETURN
  81. 810 *MOUSEON:MOUSE 1,MX,MY,1:RETURN
  82. 820 '影を付けるルーチン++++++++++++++++++++++++++++++++++++
  83. 830 *影付:IF XY=0 THEN XYY=IK*Y3:XXY=0 ELSE XYY=0:XXY=IK*Y3
  84. 840 '光==============================================
  85. 850 LINE(X1+1+XXY,Y1+1+XYY)-(X2-1+XXY,Y1+3+XYY),PSET,7,BF
  86. 860 LINE(X1+1+XXY,Y1+1+XYY)-(X1+3+XXY,Y2-1+XYY),PSET,7,BF
  87. 870 '影==============================================
  88. 880 LINE(X1+3+XXY,Y2-3+XYY)-(X2-1+XXY,Y2-1+XYY),PSET,0,BF
  89. 890 LINE(X1+2+XXY,Y2-2+XYY)-(X2-1+XXY,Y2-1+XYY),PSET,0,BF
  90. 900 LINE(X1+1+XXY,Y2-1+XYY)-(X2-1+XXY,Y2-1+XYY),PSET,0,BF
  91. 910 LINE(X2-1+XXY,Y1+1+XYY)-(X2-1+XXY,Y2-1+XYY),PSET,0,BF
  92. 920 LINE(X2-2+XXY,Y1+2+XYY)-(X2-1+XXY,Y2-1+XYY),PSET,0,BF
  93. 930 LINE(X2-3+XXY,Y1+3+XYY)-(X2-1+XXY,Y2-1+XYY),PSET,0,BF
  94. 940 RETURN
  95. 950 'メイン画面描写ルーチン+++++++++++++++++++++++++++++++++
  96. 960 *タイトル:CLS:LINE(0,0)-(639,479),PSET,7,BF:RESTORE *DATA1
  97. 970 CIRCLE(280,280),270,2,.7!,,,F,XOR:CIRCLE(360,280),270,3,.7!,,,F,XOR
  98. 980 X1=200:X2=439:Y1=150:Y2=180:Y3=50:XY=0
  99. 990 LINE(20,50)-(619,100),PSET,5,BF:FOR I=0 TO 2
  100. 1000 READ X,Y,C,S,K,A$:SYMBOL(X,Y),A$,S,S,C,,,K,5:NEXT:FOR I=0 TO 4
  101. 1010 IK=I:LINE(X1,Y1+I*Y3)-(X2,Y2+I*Y3),PSET,0,BF,4:GOSUB *影付
  102. 1020 READ A$:SYMBOL(X1+65,Y1+7+I*Y3),A$,1,1,0,,,,5
  103. 1030 NEXT:SYMBOL(210,420),"マウスでクリックして下さい。",1,1,0
  104. 1040 N1$=MID$(DATE$,1,2):N2$=MID$(DATE$,4,2):N3$=MID$(DATE$,7,2)
  105. 1050 IF MID$(DATE$,4,1)="0" THEN N2$=MID$(DATE$,5,1)
  106. 1060 IF MID$(DATE$,7,1)="0" THEN N3$=MID$(DATE$,8,1)
  107. 1070 SYMBOL(30,440),N1$+"年"+N2$+"月"+N3$+"日",1,1,2,,,5,2
  108. 1080 SYMBOL(480,450),"1995 (C)NINTON SOFT",1,1,6,,,9:RETURN
  109. 1090 *DATA1:DATA 20,10,3,2,15,簡易住所録,120,60,6,3,8
  110. 1100 DATA じゅうしょろくん,460,130,2,2,15,ver 1.0
  111. 1110 DATA 入力モード,整列モード,検索モード,データ保存,"  終了"
  112. 1120 '入力モード++++++++++++++++++++++++++++++++++++++++++++++++
  113. 1130 *入:MD=0:WDS=DS:T$="個人登録モード"
  114. 1140 GOSUB *登更:GOSUB *タイトル:RETURN
  115. 1150 '登録OR更新用ルーチン++++++++++++++++++++++++++++++++++++++
  116. 1160 *登更画面:RESTORE *DATA2:LINE(0,0)-(639,454),PSET,7,BF
  117. 1170 LINE(0,455)-(639,479),PSET,0,BF
  118. 1180 LINE(60,20)-(579,40),PSET,6,BF:SYMBOL(130,10),T$,2,2,2,,,15,20
  119. 1190 X1=150:X2=250:Y1=430:Y2=450:Y3=350:XY=1:FOR U=0 TO 1:IK=U
  120. 1200 LINE(X1+U*Y3,Y1)-(X2+U*Y3,Y2),PSET,0,BF,1+U:GOSUB *影付
  121. 1210 READ A$:SYMBOL(160+U*375,433),A$,1,1,7,,,9,4:NEXT
  122. 1220 FOR U=0 TO ITEM
  123. 1230 LINE(45,75+U*20)-(150,95+U*20),PSET,0,BF,4
  124. 1240 READ A$:SYMBOL(50,77+U*20),A$,1,1,0,,,1
  125. 1250 LINE(150,75+U*20)-(600,95+U*20),PSET,0,BF,5
  126. 1260 SYMBOL(155,78+U*20),NE$(U,WDS),1,1,0
  127. 1270 NEXT:FOR U=0 TO 8:READ A$:SYMBOL(150,250+U*16),A$,1,1,0:NEXT
  128. 1280 RETURN
  129. 1290 *登更:FOR J=0 TO ITEM:W$(J)=NE$(J,WDS):NEXT:FLG9=0
  130. 1300 GOSUB *登更画面:FLG2=0:WHILE FLG2=0
  131. 1310 IF DS>=DK THEN GOSUB *OVER:FLG2=1
  132. 1320 IF MOUSE(1)>=430 AND MOUSE(1)<=450 THEN
  133. 1330  IF MOUSE(0)>=150 AND MOUSE(0)<=250 AND MOUSE(2,0)<>0 THEN
  134. 1340   FLG2=1:FOR J=0 TO ITEM:NE$(J,WDS)=W$(J):NEXT
  135. 1350  ENDIF
  136. 1360  IF MOUSE(0)>=500 AND MOUSE(0)<=600 AND MOUSE(2,0)<>0 THEN
  137. 1370   FLG3=0:FOR L=0 TO ITEM:IF NE$(L,WDS)=W$(L) THEN FLG3=FLG3+1
  138. 1380   NEXT
  139. 1390   IF MD=0 AND DS>0 THEN
  140. 1400    GOHI=0:FOR O=0 TO DS-1
  141. 1410     IF NE$(1,O)+NE$(3,O)=NE$(1,WDS)+NE$(3,WDS) AND GOHI=0 THEN
  142. 1420     GOSUB *正か否か:GOHI=1:IF KAKU=1 THEN FLG9=1 ELSE GOSUB *登更画面
  143. 1430     ENDIF
  144. 1440    NEXT
  145. 1450   ENDIF
  146. 1460   IF FLG9=0 THEN
  147. 1470    IF FLG3<=ITEM THEN
  148. 1480     GOSUB *MOUSEOFF:SV=1
  149. 1490     IF MD=0 THEN DS=DS+1:WDS=WDS+1
  150. 1500     GOSUB *MOUSEON:IF MD=0 THEN GOSUB *登更画面 ELSE FLG2=1
  151. 1510    ELSE
  152. 1520     FLG2=1
  153. 1530    ENDIF
  154. 1540   ENDIF
  155. 1550  ENDIF
  156. 1560 ENDIF
  157. 1570 GOSUB *キーボード入力:FLG9=0
  158. 1580 WEND:FLG2=0:RETURN
  159. 1590 'ソート+++++++++++++++++++++++++++++++++++++++++++++++++++++++
  160. 1600 *整画面:LINE(0,0)-(639,479),PSET,7,BF:RESTORE *SORTDATA
  161. 1610 LINE(50,30)-(589,50),PSET,3,BF:READ A$:SYMBOL(200,20),A$,2,2,6,,,9,3
  162. 1620 X1=200:X2=439:Y1=150:Y2=180:Y3=50:XY=0:FOR J=0 TO 4:IK=J
  163. 1630 LINE(X1,Y1+J*Y3)-(X2,Y2+J*Y3),PSET,0,BF,5:GOSUB *影付
  164. 1640 READ A$:SYMBOL(270,158+J*Y3),A$,1,1,0:NEXT
  165. 1650 SYMBOL(200,400),"整列方法を選んで下さい。",1,1,0:RETURN
  166. 1660 *整:GOSUB *整画面:SORTFLG=0:SMODE=0:WHILE SORTFLG=0
  167. 1670 IF MOUSE(0)>=200 AND MOUSE(0)<=439 THEN
  168. 1680  IF MOUSE(2,0)<>0 AND MOUSE(1)>=150 AND MOUSE(1)<=180 THEN
  169. 1690   SMODE=0:GOSUB *整列:SV=1:GOSUB *整画面
  170. 1700  ENDIF
  171. 1710  IF MOUSE(2,0)<>0 AND MOUSE(1)>=200 AND MOUSE(1)<=230 THEN
  172. 1720   SMODE=1:GOSUB *整列:SV=1:GOSUB *整画面
  173. 1730  ENDIF
  174. 1740  IF MOUSE(2,0)<>0 AND MOUSE(1)>=250 AND MOUSE(1)<=280 THEN
  175. 1750   SMODE=2:GOSUB *整列:SV=1:GOSUB *整画面
  176. 1760  ENDIF
  177. 1770  IF MOUSE(2,0)<>0 AND MOUSE(1)>=300 AND MOUSE(1)<=330 THEN
  178. 1780   SMODE=3:GOSUB *整列:SV=1:GOSUB *整画面
  179. 1790  ENDIF
  180. 1800   IF MOUSE(1)>=350 AND MOUSE(1)<=380 AND MOUSE(2,0)<>0 THEN SORTFLG=1
  181. 1810 ENDIF
  182. 1820 WEND:RETURN
  183. 1830 *整列:GOSUB *MOUSEOFF:GOSUB *画面に線
  184. 1840       LINE(180,200)-(459,279),PSET,0,BF,7
  185. 1850       SYMBOL(190,210),"整列中です、しばらくお待ち下さい。",1,1,0
  186. 1860       SYMBOL(250,250),"データシフト中",1,1,3
  187. 1870       FOR J=DS TO 1 STEP -1:FOR JJ=0 TO ITEM
  188. 1880       NE$(JJ,J)=NE$(JJ,J-1):NEXT JJ,J
  189. 1890       LINE(250,250)-(400,270),PSET,7,BF:SYMBOL(250,250),"残り",1,1,1
  190. 1900       FOR SO0=1 TO DS:LINE(300,250)-(400,270),PSET,7,BF
  191. 1910       SYMBOL(300,250),STR$(DS-SO0+1),1,1,0
  192. 1920       FOR J=0 TO ITEM:NE$(J,0)=NE$(J,SO0):NEXT:SO1=SO0
  193. 1930       IF SMODE=0 THEN
  194. 1940        WHILE NE$(0,SO1)+"0"+NE$(2,SO1)<NE$(0,SO1-1)+"0"+NE$(2,SO1-1)
  195. 1950        FOR J=0 TO ITEM:SWAP NE$(J,SO1),NE$(J,SO1-1):NEXT J:SO1=SO1-1
  196. 1960        WEND
  197. 1970       ENDIF
  198. 1980       IF SMODE=1 THEN
  199. 1990        WHILE NE$(0,SO1)+"0"+NE$(2,SO1)>NE$(0,SO1-1)+"0"+NE$(2,SO1-1)
  200. 2000        FOR J=0 TO ITEM:SWAP NE$(J,SO1),NE$(J,SO1-1):NEXT J:SO1=SO1-1
  201. 2010        WEND
  202. 2020       ENDIF
  203. 2030       IF SMODE=2 THEN
  204. 2040        WHILE NE$(2,SO1)+"0"+NE$(0,SO1)<NE$(2,SO1-1)+"0"+NE$(0,SO1-1)
  205. 2050        FOR J=0 TO ITEM:SWAP NE$(J,SO1),NE$(J,SO1-1):NEXT J:SO1=SO1-1
  206. 2060        WEND
  207. 2070       ENDIF
  208. 2080       IF SMODE=3 THEN
  209. 2090        WHILE NE$(2,SO1)+"0"+NE$(0,SO1)>NE$(2,SO1-1)+"0"+NE$(0,SO1-1)
  210. 2100        FOR J=0 TO ITEM:SWAP NE$(J,SO1),NE$(J,SO1-1):NEXT J:SO1=SO1-1
  211. 2110        WEND
  212. 2120       ENDIF
  213. 2130       NEXT SO0:LINE(250,250)-(400,270),PSET,7,BF
  214. 2140       SYMBOL(250,250),"データシフト中",1,1,3
  215. 2150       FOR J=0 TO DS:FOR JJ=0 TO ITEM
  216. 2160       NE$(JJ,J)=NE$(JJ,J+1):NEXT JJ,J:GOSUB *MOUSEON:RETURN
  217. 2170 *SORTDATA:DATA 整列モード選択,名字の昇順,名字の降順,名前の昇順
  218. 2180 DATA 名前の降順,"   戻る"
  219. 2190 'データ更新ルーチン++++++++++++++++++++++++++++++++++++++++++++
  220. 2200 *更新:GOSUB *MOUSEOFF:GOSUB *画面に線:SV=0
  221. 2210 LINE(180,200)-(459,279),PSET,0,BF,7
  222. 2220 SYMBOL(190,230),"保存中です、しばらくお待ち下さい。",1,1,0
  223. 2230 KILL FL$:OPEN "O",#1,FL$:PRINT#1,DS
  224. 2240 FOR J=0 TO DS-1:PRINT#1,NE$(0,J);:FOR L=1 TO ITEM
  225. 2250 PRINT#1,",";NE$(L,J);
  226. 2260 NEXT L:PRINT#1:NEXT J:CLOSE #1:GOSUB *MOUSEON:RETURN
  227. 2270 'キー入力用ルーチン++++++++++++++++++++++++++++++++++++++++++++
  228. 2280 *キーボード入力
  229. 2290 IF MOUSE(0)>=150 AND MOUSE(0)<=600 THEN
  230. 2300  FOR L=0 TO ITEM
  231. 2310  IF MOUSE(2,0)<>0 THEN
  232. 2320   IF MOUSE(1)>=75+L*20 AND MOUSE(1)<=95+L*20 THEN
  233. 2330    LINE(150,75+L*20)-(600,95+L*20),PSET,0,BF,5
  234. 2340    SYMBOL(155,77+L*20),"キーボードから項目を入力して下さい。",1,1,2
  235. 2350    GOSUB *MOUSEOFF:WW$=NE$(L,WDS)
  236. 2360    LOCATE 0,25:INPUT NE$(L,WDS):CLS 4
  237. 2370    IF NE$(L,WDS)="" THEN NE$(L,WDS)=WW$
  238. 2380    IF NE$(L,WDS)="CLS" OR NE$(L,WDS)="cls" THEN NE$(L,WDS)=""
  239. 2390    LINE(150,75+L*20)-(600,95+L*20),PSET,0,BF,5
  240. 2400    SYMBOL(155,78+L*20),NE$(L,WDS),1,1,0
  241. 2410    GOSUB *MOUSEON
  242. 2420   ENDIF
  243. 2430  ENDIF
  244. 2440  NEXT
  245. 2450 ENDIF
  246. 2460 RETURN
  247. 2470 *DATA2:DATA "  戻る",決定
  248. 2480 DATA 名字(フリガナ),名字(漢字),名前(フリガナ),名前(漢字)
  249. 2490 DATA 郵便番号,住所,電話番号,備考
  250. 2500 DATA "●それぞれの項目をマウスで選んで下さい。",""
  251. 2510 DATA "●メッセージの表示されている間はキーボードから文字を入力"
  252. 2520 DATA "  して下さい。",""
  253. 2530 DATA "●間違って項目を選んでしまっても、何も入力せずにリターン"
  254. 2540 DATA "  キーを押すと、前に入力されていた項目は消えません。",""
  255. 2550 DATA "●項目の文字を消去したい場合は 「CLS」 と入力して下さい。"
  256. 2560 '判別ルーチン-----------------------------------
  257. 2570 *正か否か:GOSUB *画面に線:GOSUB *MOUSEON
  258. 2580 LINE(100,100)-(539,379),PSET,0,BF,7:RESTORE *DATA8
  259. 2590 FOR M=0 TO 2:READ A$:SYMBOL(150,145+M*30),A$,1,1,0:NEXT
  260. 2600 SYMBOL(180,240),"フリガナ  = "+NE$(0,O)+" "+NE$(2,O),1,1,1
  261. 2610 SYMBOL(180,260),"名前      = "+NE$(1,O)+" "+NE$(3,O),1,1,1
  262. 2620 SYMBOL(180,280),"電話番号  = "+NE$(6,O),1,1,1:GOSUB *正否判定:RETURN
  263. 2630 *正否判定:X1=180:X2=280:Y1=320:Y2=350:Y3=170:XY=1:FOR P=0 TO 1:IK=P
  264. 2640 LINE(X1+P*Y3,Y1)-(X2+P*Y3,Y2),PSET,0,BF,P+1:GOSUB *影付
  265. 2650 READ A$:SYMBOL(X1+30+P*Y3,Y1+7),A$,1,1,7,,,9:NEXT
  266. 2660 FLG00=0:KAKU=0:WHILE FLG00=0
  267. 2670 IF MOUSE(2,0)<>0 THEN
  268. 2680  IF MOUSE(1)>=320 AND MOUSE(1)<=350 THEN
  269. 2690   IF MOUSE(0)>=180 AND MOUSE(0)<=280 THEN KAKU=1:FLG00=1
  270. 2700   IF MOUSE(0)>=350 AND MOUSE(0)<=450 THEN FLG00=1
  271. 2710  ENDIF
  272. 2720 ENDIF
  273. 2730 WEND:FLG00=0:RETURN
  274. 2740 *DATA8:DATA 入力項目に同じデータが確認されました。
  275. 2750 DATA このままだと同じデータが二つ出来てしまいます
  276. 2760 DATA 二つデータが出来てもよろしいですか。
  277. 2770 DATA いいえ,はい
  278. 2780 *モード選択:RESTORE *DATA5:LINE(0,0)-(639,479),PSET,7,BF
  279. 2790 LINE(50,30)-(589,50),PSET,3,BF:READ A$:SYMBOL(200,20),A$,2,2,6,,,9,3
  280. 2800 X1=200:X2=439:Y1=150:Y2=180:Y3=100:XY=0:FOR J=0 TO 2:IK=J
  281. 2810 LINE(X1,Y1+J*Y3)-(X2,Y2+J*Y3),PSET,0,BF,5:GOSUB *影付
  282. 2820 READ A$:SYMBOL(240,158+J*100),A$,1,1,0:NEXT
  283. 2830 SYMBOL(200,400),"検索モードを選んで下さい。",1,1,0:RETURN
  284. 2840 *出:GOSUB *モード選択:FLG6=0:WHILE FLG6=0
  285. 2850 IF MOUSE(0)>=200 AND MOUSE(0)<=439 THEN
  286. 2860  IF MOUSE(2,0)<>0 THEN
  287. 2870   IF MOUSE(1)>=150 AND MOUSE(1)<=180 THEN GOSUB *検
  288. 2880  ENDIF
  289. 2890  IF MOUSE(2,0)<>0 THEN
  290. 2900   IF MOUSE(1)>=250 AND MOUSE(1)<=280 THEN GOSUB *入検
  291. 2910  ENDIF
  292. 2920   IF MOUSE(1)>=350 AND MOUSE(1)<=380 AND MOUSE(2,0)<>0 THEN FLG6=1
  293. 2930 ENDIF
  294. 2940 WEND:GOSUB *タイトル:RETURN
  295. 2950 *DATA5:DATA 検索モード選択,一覧表示モード,入力検索モード,"      戻る"
  296. 2960 '入力語検索モード+++++++++++++++++++++++++++++++++++++++
  297. 2970 *入検:IWRD$="":GOSUB *入検画面
  298. 2980 FLG7=0:WHILE FLG7=0
  299. 2990 IF MOUSE(2,0)<>0 AND MOUSE(1)>=350 AND MOUSE(1)<=380 THEN
  300. 3000  IF MOUSE(0)>=100 AND MOUSE(0)<=200 THEN FLG7=1
  301. 3010  IF MOUSE(0)>=270 AND MOUSE(0)<=370 THEN
  302. 3020   LINE(100,120)-(539,150),PSET,0,BF,5:GOSUB *MOUSEOFF
  303. 3030   SYMBOL(110,125),"キーボードから単語を入力して下さい",1,1,2,,,1
  304. 3040   WW$=IWRD$:LOCATE 0,25:INPUT IWRD$:CLS 4
  305. 3050   IF IWRD$="" THEN IWRD$=WW$
  306. 3060   IF IWRD$="CLS" OR IWRD$="cls" THEN IWRD$=""
  307. 3070   LINE(100,120)-(539,150),PSET,0,BF,5:SYMBOL(110,125),IWRD$,1,1,0
  308. 3080   GOSUB *MOUSEON
  309. 3090  ENDIF
  310. 3100  IF MOUSE(0)>=440 AND MOUSE(0)<=540 THEN
  311. 3110   IF IWRD$="" OR IWRD$="*" OR IWRD$="*" THEN
  312. 3120    LINE(0,350)-(639,430),PSET,7,BF:BEEP
  313. 3130    SYMBOL(200,400),"検索する単語を入力して下さい",1,1,1
  314. 3140    GOSUB *確認:IWRD$="":GOSUB *入検画面
  315. 3150   ELSE
  316. 3160    GOSUB *MOUSEOFF
  317. 3170    SYMBOL(280,462),"データ検索中",1,1,6
  318. 3180     MD3=0:MATTI=0
  319. 3190     'アスタリスクの有無を調べる======================
  320. 3200     IF KMID$(IWRD$,1,1)="*" OR KMID$(IWRD$,1,1)="*" THEN
  321. 3210      MD3=1:IWRD$=KMID$(IWRD$,2,KLEN(IWRD$)-1)
  322. 3220     ENDIF
  323. 3230     FOR I=0 TO DS-1:W1$="":MD4=0:FOR J=0 TO ITEM
  324. 3240     'アスタリスクの有無を調べる======================
  325. 3250     IF MD3=0 THEN
  326. 3260      W2$=NE$(J,I)
  327. 3270      IF W2$=IWRD$ AND W1$<>W2$ THEN
  328. 3280       WS(MATTI)=I:MATTI=MATTI+1:W1$=W2$:MD4=1
  329. 3290      ENDIF
  330. 3300     ELSE
  331. 3310      FOR K=1 TO KLEN(NE$(J,I))-KLEN(IWRD$)+1
  332. 3320      W2$=KMID$(NE$(J,I),K,KLEN(IWRD$))
  333. 3330      IF W2$=IWRD$ AND W1$<>W2$ THEN
  334. 3340       WS(MATTI)=I:MATTI=MATTI+1:W1$=W2$:MD4=1
  335. 3350      ENDIF
  336. 3360      NEXT K
  337. 3370     ENDIF
  338. 3380      NEXT J
  339. 3390      IF MD4=0 THEN
  340. 3400       A1$=NE$(0,I)+NE$(2,I):A2$=NE$(1,I)+NE$(3,I)
  341. 3410       IF A1$=IWRD$ OR A2$=IWRD$ THEN WS(MATTI)=I:MATTI=MATTI+1:MD4=0
  342. 3420      ENDIF
  343. 3430     NEXT I:LINE(0,455)-(639,479),PSET,0,BF
  344. 3440     IF MATTI>0 THEN
  345. 3450      LINE(0,350)-(639,430),PSET,7,BF
  346. 3460      SYMBOL(200,400),STR$(MATTI)+"件のデータがあります。",1,1,0
  347. 3470      GOSUB *MOUSEON:GOSUB *確認:WPC=0:MN=0:MD2=1
  348. 3480      FLG11=0:Q=0:WHILE FLG11=0:I=WS(Q):GOSUB *個人データ
  349. 3490      Q=Q+1:IF Q>=MATTI OR FLG10=1 THEN FLG11=1
  350. 3500      WEND:GOSUB *入検画面:IWRD$=""
  351. 3510     ELSE
  352. 3520      GOSUB *MOUSEON:GOSUB *検索データなし
  353. 3530     ENDIF
  354. 3540   ENDIF
  355. 3550  ENDIF
  356. 3560 ENDIF
  357. 3570 WEND
  358. 3580 GOSUB *モード選択:RETURN
  359. 3590 *検索データなし
  360. 3600 LINE(0,350)-(639,430),PSET,7,BF:BEEP
  361. 3610 SYMBOL(200,400),"検索データが見つかりません。",1,1,2:GOSUB *確認
  362. 3620 IWRD$="":GOSUB *入検画面
  363. 3630 RETURN
  364. 3640 *確認
  365. 3650  X1=500:X2=550:Y1=400:Y2=430:Y3=0:XY=1
  366. 3660  LINE(X1,Y1)-(X2,Y2),PSET,0,BF,6:GOSUB *影付
  367. 3670  SYMBOL(X1+9,Y1+7),"確認",1,1,0
  368. 3680  FLG00=0:WHILE FLG00=0
  369. 3690  IF MOUSE(2,0)<>0 THEN
  370. 3700   IF MOUSE(0)>=X1 AND MOUSE(0)<=X2 THEN
  371. 3710   IF MOUSE(1)>=Y1 AND MOUSE(1)<=Y2 THEN FLG00=1
  372. 3720  ENDIF
  373. 3730  ENDIF
  374. 3740  WEND:FLG00=0
  375. 3750 RETURN
  376. 3760 *入検画面:RESTORE *DATA6:LINE(0,0)-(639,454),PSET,7,BF
  377. 3770 LINE(50,30)-(589,50),PSET,5,BF:LINE(0,455)-(639,479),PSET,0,BF
  378. 3780 SYMBOL(200,20),"入力検索モード",2,2,4,,,9,8
  379. 3790 X1=100:X2=200:Y1=350:Y2=380:Y3=170:XY=1:FOR I=0 TO 2:IK=I
  380. 3800 LINE(X1+I*Y3,Y1)-(X2+I*Y3,Y2),PSET,0,BF,3:GOSUB *影付
  381. 3810 READ A$:SYMBOL(X1+20+I*Y3,Y1+8),A$,1,1,7:NEXT
  382. 3820 SYMBOL(100,100),"入力単語",1,1,0,,,1
  383. 3830 LINE(100,120)-(539,150),PSET,0,BF,5
  384. 3840 FOR Q=0 TO 8:READ A$:SYMBOL(100,165+Q*20),A$,1,1,0:NEXT
  385. 3850 RETURN
  386. 3860 *DATA6:DATA "  戻る",単語入力,検索開始
  387. 3870 DATA ●単語を入力すると、その単語の項目のあるデータをすべて
  388. 3880 DATA "  表示します。",""
  389. 3890 DATA ●単語の先頭に *(アスタリスク)を付けると、その単語を
  390. 3900 DATA "  含む、すべての項目に対して検索を行います。",""
  391. 3910 DATA 例:*あいう
  392. 3920 DATA "  上記のように入力すると「あいう」の文字の入ったデータが"
  393. 3930 DATA "  順番に表示されていきます。"
  394. 3940 '検索モード+++++++++++++++++++++++++++++++++++++++++++++
  395. 3950 *検:PC=1:GOSUB *検索データ表示
  396. 3960 FLG2=0:WHILE FLG2=0
  397. 3970 IF MOUSE(2,0)<>0 THEN 
  398. 3980  IF MOUSE(1)>=460 AND MOUSE(1)<=479 THEN 
  399. 3990   '戻るの処理...........................
  400. 4000   IF MOUSE(0)>=300 AND MOUSE(0)<=380 THEN FLG2=1
  401. 4010   'ページ指定の処理...........................
  402. 4020   IF MOUSE(0)>=530 AND MOUSE(0)<=620 THEN GOSUB *ページ指定
  403. 4030   '前頁の処理...........................
  404. 4040   IF MOUSE(0)>=200 AND MOUSE(0)<=280 AND PC>1 THEN
  405. 4050    PC=PC-1:GOSUB *検索データ表示
  406. 4060   ENDIF
  407. 4070   '後頁の処理...........................
  408. 4080   IF MOUSE(0)>=400 AND MOUSE(0)<=480 AND PC<TPC THEN
  409. 4090    IF MOUSE(2,0)<>0 THEN PC=PC+1:GOSUB *検索データ表示
  410. 4100   ENDIF
  411. 4110  ENDIF
  412. 4120 ENDIF
  413. 4130 '個人の処理...........................
  414. 4140 IF MOUSE(2,0)<>0 THEN 
  415. 4150  FOR I=0 TO 21
  416. 4160  IF (I+WPC)<DS THEN
  417. 4170   IF MOUSE(1)>20+I*20 AND MOUSE(1)<40+I*20 THEN
  418. 4180    MD2=0:GOSUB *個人データ:GOSUB *検索データ表示
  419. 4190   ENDIF
  420. 4200  ENDIF
  421. 4210  NEXT
  422. 4220 ENDIF
  423. 4230 WEND:GOSUB *モード選択:RETURN
  424. 4240 'ページ指定用ルーチン+++++++++++++++++++++++++++++++++++
  425. 4250 *ページ指定表示:GOSUB *MOUSEOFF
  426. 4260 LINE(0,455)-(639,479),PSET,0,BF:LINE(100,150)-(539,329),PSET,0,BF,7
  427. 4270 SYMBOL(160,180),"何ページを表示しますか?",1,1,0
  428. 4280 SYMBOL(160,210),"数字をキーボードから入力して下さい。",1,1,1
  429. 4290 SYMBOL(160,240),"現在のページ = "+STR$(PC),1,1,6,,,9:INPC$=""
  430. 4300 SYMBOL(160,270),"総ページ数   = "+STR$(TPC),1,1,4,,,9:RETURN
  431. 4310 *ページ指定:GOSUB *ページ指定表示
  432. 4320 LOCATE 0,25:INPUT INPC$:CLS 4
  433. 4330 IF INPC$="" THEN
  434. 4340  INPC$=STR$(PC)
  435. 4350 ELSE
  436. 4360  IF VAL(INPC$)<1 THEN INPC$=STR$(1)
  437. 4370  IF VAL(INPC$)>TPC THEN INPC$=STR$(TPC)
  438. 4380 ENDIF
  439. 4390 GOSUB *MOUSEON:PC=VAL(INPC$):GOSUB *検索データ表示
  440. 4400 RETURN
  441. 4410 '検索データ表示用ルーチン+++++++++++++++++++++++++++++++
  442. 4420 *検索データ表示:RESTORE *DATA3
  443. 4430 LINE(0,0)-(639,479),PSET,7,BF
  444. 4440 LINE(0,20)-(30,459),PSET,6,BF:LINE(30,0)-(639,20),PSET,5,BF
  445. 4450 IF DS<23 THEN LP=DS-1:TPC=1 ELSE LP=21:TPC=INT((DS-1)/22)+1
  446. 4460 FOR I=0 TO 23:LINE(0,I*20)-(639,I*20),PSET,0
  447. 4470 IF I>0 AND I<23 THEN
  448. 4480  KJIN=(PC-1)*22+I
  449. 4490  IF KJIN<10 THEN KOJINNO$=" "+STR$(KJIN)
  450. 4500  IF KJIN<100 AND KJIN>=10 THEN KOJINNO$=STR$(KJIN)
  451. 4510  IF KJIN<1000 AND KJIN>=100 THEN KOJINNO$=MID$(STR$(KJIN),2,3)
  452. 4520  IF KJIN>=1000 THEN KOJINNO$="#"+RIGHT$(STR$(KJIN),2)
  453. 4530  SYMBOL(0,2+I*20),KOJINNO$,1,1,0,,,1
  454. 4540 ENDIF
  455. 4550 NEXT:FOR I=0 TO 3:READ X:LINE(X,0)-(X,459),PSET,0:NEXT
  456. 4560 FOR I=0 TO 3:READ X,A$:SYMBOL(X,2),A$,1,1,0:NEXT
  457. 4570 X1=200:X2=280:Y1=460:Y2=479:Y3=100:XY=1:FOR I=0 TO 2:IK=I
  458. 4580 LINE(X1+I*Y3,Y1)-(X2+I*Y3,Y2),PSET,0,BF,4:GOSUB *影付
  459. 4590 READ A$:SYMBOL(210+I*100,462),A$,1,1,7,,,9:NEXT
  460. 4600 X1=530:X2=620:Y1=460:Y2=479:Y3=0:XY=0
  461. 4610 LINE(X1,Y1)-(X2,Y2),PSET,0,BF,7:GOSUB *影付
  462. 4620 SYMBOL(0,462),"データ件数・・"+STR$(DS)+"件",1,1,2,,,1
  463. 4630 SYMBOL(535,462),STR$(PC)+"/"+STR$(TPC)+"頁",1,1,1,,,1:WPC=(PC-1)*22
  464. 4640 FOR I=0 TO LP
  465. 4650 IF WPC+I<DS THEN
  466. 4660  SYMBOL(32,22+I*20),NE$(1,I+WPC)+" "+NE$(3,I+WPC),1,1,0
  467. 4670  SYMBOL(152,22+I*20),NE$(0,I+WPC)+" "+NE$(2,I+WPC),1,1,0
  468. 4680  SYMBOL(270,22+I*20),NE$(4,I+WPC),1,1,0
  469. 4690  SYMBOL(350,22+I*20),NE$(5,I+WPC),1,1,0
  470. 4700 ENDIF
  471. 4710 NEXT:RETURN
  472. 4720 *DATA3:DATA 30,150,265,340
  473. 4730 DATA 70,名前,165,読み仮名,270,郵便番号,360,住所
  474. 4740 DATA 前の頁へ,"  戻る",次の頁へ
  475. 4750 '個人データ表示用ルーチン+++++++++++++++++++++++++++++++++++++
  476. 4760 *個人データ表示:RESTORE *DATA4:IF MDD=0 THEN MN=MN+1
  477. 4770 LINE(0,0)-(639,479),PSET,7,BF:LINE(0,50)-(80,110),PSET,4,BF
  478. 4780 FOR J=0 TO 2:LINE(0,110+J*60)-(639,140+J*60),PSET,5,BF:NEXT
  479. 4790 SYMBOL(160,10),"*個人データ*",2,1.5!,2,,,9,10
  480. 4800 LINE(80,50)-(80,110),PSET,0
  481. 4810 FOR J=0 TO 2:LINE(0,50+J*30)-(639,50+J*30),PSET,0:NEXT
  482. 4820 FOR J=0 TO 5:LINE(0,140+J*30)-(639,140+J*30),PSET,0:NEXT
  483. 4830 IF MD2=1 AND MATTI>1 THEN
  484. 4840  SYMBOL(20,450),STR$(Q+1)+"/"+STR$(MATTI)+"頁",1,1,1,,,1
  485. 4850 ENDIF
  486. 4860 FOR J=0 TO 1:READ A$:SYMBOL(10,57+J*30),A$,1,1,0,,,1:NEXT
  487. 4870 FOR J=0 TO 2:READ A$:SYMBOL(200,115+J*60),A$,1,1,1,,,1:NEXT
  488. 4880 X1=240:X2=370:Y1=330:Y2=355:Y3=0:XY=1:LINE(X1,Y1)-(X2,Y2),PSET,0,BF,2
  489. 4890 GOSUB *影付:SYMBOL(280,335),"音声",1,1,7,,,9,20
  490. 4900 X1=80:X2=170:Y1=400:Y2=425:Y3=120:XY=1:FOR J=0 TO 3:IK=J
  491. 4910 LINE(X1+J*Y3,Y1)-(X2+J*Y3,Y2),PSET,0,BF,6:GOSUB *影付:READ A$
  492. 4920 IF A$="戻る" AND MD2=1 AND MN<MATTI THEN
  493. 4930  A$="次頁":X1=320:X2=410:Y1=440:Y2=465:Y3=0:XY=1
  494. 4940  LINE(X1,Y1)-(X2,Y2),PSET,0,BF,2:GOSUB *影付
  495. 4950  SYMBOL(340,445),"中止",1,1,7,,,9,20
  496. 4960 ENDIF
  497. 4970 SYMBOL(100+J*120,405),A$,1,1,7,,,9,20:NEXT
  498. 4980 FOR J=0 TO 1:FOR K=0 TO 1
  499. 4990 SYMBOL(230+J*100,57+K*30),NE$(0+K+J*2,I+WPC),1,1,0:NEXT K,J
  500. 5000 SYMBOL(60,147),"〒"+NE$(4,I+WPC)+"  "+NE$(5,I+WPC),1,1,0
  501. 5010 FOR J=0 TO 1:SYMBOL(60,207+J*60),NE$(6+J,I+WPC),1,1,0:NEXT
  502. 5020 RETURN
  503. 5030 *個人データ:MDD=0:GOSUB *個人データ表示:MDD=1
  504. 5040 FLG5=0:WHILE FLG5=0
  505. 5050 '音声関連+++++++++++++
  506. 5060 IF MOUSE(1)>=330 AND MOUSE(1)<=355 AND MOUSE(2,0)<>0 THEN
  507. 5070  IF MOUSE(0)>=240 AND MOUSE(0)<=370 THEN
  508. 5080   LINE(0,330)-(639,479),PSET,7,BF
  509. 5090   IF NE$(6,I+WPC)="" THEN
  510. 5100    SYMBOL(200,400),"電話番号がありません。",1,1,0
  511. 5110    BEEP:GOSUB *確認:GOSUB *個人データ表示
  512. 5120   ELSE
  513. 5130    SYMBOL(200,370),"再生中・・・・",2,2,3,,,1
  514. 5140    TELFLG=0:LPM=1:GOSUB *MOUSEOFF:WHILE TELFLG=0
  515. 5150    LOAD@ KMID$(NE$(6,I+WPC),LPM,1)+".SND",SND%
  516. 5160    PCMPLAY SND%,127:WHILE PLAY(2):WEND:LPM=LPM+1
  517. 5170    IF KLEN(NE$(6,I+WPC))<LPM THEN TELFLG=1
  518. 5180    WEND
  519. 5190    LINE(0,330)-(639,479),PSET,7,BF
  520. 5200    SYMBOL(200,370),"再生終了",2,2,3,,,1
  521. 5210    GOSUB *MOUSEON:GOSUB *確認:GOSUB *個人データ表示
  522. 5220   ENDIF
  523. 5230  ENDIF
  524. 5240 ENDIF
  525. 5250 '戻る関連+++++++++++++
  526. 5260 IF MOUSE(1)>=440 AND MOUSE(1)<=465 AND MN<MATTI THEN
  527. 5270  IF MOUSE(0)>=320 AND MOUSE(0)<=410 AND MOUSE(2,0)<>0 THEN
  528. 5280   FLG5=1:IF MD2=1 THEN FLG10=1
  529. 5290  ENDIF
  530. 5300 ENDIF
  531. 5310 IF MOUSE(1)>=400 AND MOUSE(1)<=425 AND MOUSE(2,0)<>0 THEN
  532. 5320  IF MOUSE(0)>=440 AND MOUSE(0)<=530 THEN FLG5=1:IF MD2=1 THEN FLG10=0
  533. 5330  IF MOUSE(0)>=320 AND MOUSE(0)<=410 THEN
  534. 5340    LINE(0,330)-(639,479),PSET,7,BF:LPRINT;
  535. 5350  IF PR=0 THEN
  536. 5360   GOSUB *MOUSEOFF
  537. 5370   SYMBOL(200,370),"印刷中・・・",2,2,0
  538. 5380   LPRINT"**個人データ***********************************"
  539. 5390   LPRINT USING "フリガナ    &      & &      &";NE$(0,I+WPC);NE$(2,I+WPC)
  540. 5400   IF KLEN(NE$(1,I+WPC))<5 THEN
  541. 5410   LPRINT USING "氏名     &      & &      &";NE$(1,I+WPC);NE$(3,I+WPC)
  542. 5420   ELSE
  543. 5430   LPRINT USING "氏名     @ @";NE$(1,I+WPC);NE$(3,I+WPC)
  544. 5440   ENDIF
  545. 5450   LPRINT:LPRINT "〒       ";NE$(4,I+WPC);"  ";NE$(5,I+WPC)
  546. 5460   LPRINT "電話     ";NE$(6,I+WPC)
  547. 5470   LPRINT "備考     ";
  548. 5480   IF NE$(7,I+WPC)="" THEN LPRINT"特に無し" ELSE LPRINT NE$(7,I+WPC)
  549. 5490   LINE(0,330)-(639,479),PSET,7,BF:LPRINT
  550. 5500   SYMBOL(200,370),"印刷終了",2,2,0:GOSUB *MOUSEON
  551. 5510   GOSUB *確認:GOSUB *個人データ表示
  552. 5520  ELSE
  553. 5530   BEEP:SYMBOL(170,440),"プリンターの準備が出来ていません。",1,1,2
  554. 5540   GOSUB *確認:GOSUB *個人データ表示:PR=0
  555. 5550  ENDIF
  556. 5560 ENDIF
  557. 5570 IF MOUSE(0)>=200 AND MOUSE(0)<=290 AND MOUSE(2,0)<>0 THEN
  558. 5580  GOSUB *画面に線:GOSUB *MOUSEON:BEEP
  559. 5590  LINE(100,100)-(539,379),PSET,0,BF,7:RESTORE *削除用データ
  560. 5600  FOR M=0 TO 1:READ A$:SYMBOL(150,145+M*30),A$,1,1,0:NEXT
  561. 5610  SYMBOL(180,220),"フリガナ  = "+NE$(0,I+WPC)+" "+NE$(2,I+WPC),1,1,1
  562. 5620  SYMBOL(180,250),"名前      = "+NE$(1,I+WPC)+" "+NE$(3,I+WPC),1,1,1
  563. 5630  SYMBOL(180,280),"電話番号  = "+NE$(6,I+WPC),1,1,1:GOSUB *正否判定
  564. 5640  IF KAKU=0 THEN
  565. 5650   FOR J=I+WPC TO DS:FOR K=0 TO ITEM
  566. 5660   NE$(K,J)=NE$(K,J+1)
  567. 5670   NEXT K,J:DS=DS-1
  568. 5680   FLG5=1
  569. 5690  ELSE
  570. 5700   GOSUB *個人データ表示
  571. 5710  ENDIF
  572. 5720 ENDIF
  573. 5730  IF MOUSE(0)>=80 AND MOUSE(0)<=170 AND MOUSE(2,0)<>0 THEN
  574. 5740   MD=1:WDS=I+WPC:T$="個人データ修正"
  575. 5750   GOSUB *登更:GOSUB *個人データ表示
  576. 5760  ENDIF
  577. 5770 ENDIF
  578. 5780 WEND:RETURN
  579. 5790 *DATA4:DATA フリガナ,氏名,住所,電話番号,備考
  580. 5800 DATA 修正,削除,印刷,戻る
  581. 5810 *削除用データ:DATA 削除するとこのデータは無くなってしまいます。
  582. 5820 DATA 本当に削除しますか?,中止,削除
  583. 5830 *画面に線:GOSUB *MOUSEOFF
  584. 5840 FOR GSEN=0 TO 159:LINE(0,1+GSEN*4)-(639,1+GSEN*4),PSET,0
  585. 5850 LINE(0,479-GSEN*4)-(639,479-GSEN*4),PSET,0:NEXT
  586. 5860 FOR GSEN=0 TO 159:LINE(1+GSEN*4,0)-(1+GSEN*4,479),PSET,0
  587. 5870 LINE(639-GSEN*4,0)-(639-GSEN*4,479),PSET,0:NEXT:RETURN
  588. 5880 'エラールーチン+++++++++++++++++++++++++++++++++++++++++++++++++++
  589. 5890 *ERROR_RT
  590. 5900 IF ERR=53 AND ERL=5340 THEN PR=1:RESUME 5350
  591. 5910 IF ERR=53 AND ERL<>5340 THEN
  592. 5920 LINE(0,350)-(639,479),PSET,7,BF:BEEP
  593. 5930 SYMBOL(170,440),"用紙が切れています。",1,1,2:GOSUB *MOUSEON
  594. 5940 RESUME 5510
  595. 5950 ENDIF
  596. 5960 IF ERR=63 AND ERL=200 THEN OPN=1:RESUME 190
  597. 5970 IF ERL=2230 THEN
  598. 5980   LINE(100,150)-(539,329),PSET,0,BF,7:SYMBOL(110,180),"警告:",1,1,2
  599. 5990  IF ERR=72 THEN
  600. 6000   SYMBOL(160,180),"ディスクが使用可能な状態になっていません!!",1,1,2
  601. 6010   SYMBOL(160,210),"フロッピーディスクがちゃんと入っていますか?",1,1,1
  602. 6020   SYMBOL(160,240),"ハードディスクの電源が切れていませんか?",1,1,1
  603. 6030  ENDIF
  604. 6040  IF ERR=73 THEN
  605. 6050   SYMBOL(160,180),"ディスクが書き込み禁止になっています!!",1,1,2
  606. 6060   SYMBOL(160,210),"フロッピーディスクなら書き込み可能な",1,1,1
  607. 6070   SYMBOL(160,240),"状態にしてください。",1,1,1
  608. 6080  ENDIF
  609. 6090  SYMBOL(160,280),"ディスクを確認して下さい。",1,1,2
  610. 6100  BEEP:GOSUB *MOUSEON:GOSUB *確認:GOSUB *MOUSEOFF:RESUME 2230
  611. 6110 ENDIF
  612. 6120 IF ERR=73 AND ERL=310 THEN
  613. 6130  SYMBOL(100,360),"警告:",1,1,2
  614. 6140  SYMBOL(150,360),"ディスクが書き込み禁止になっています!!",1,1,2
  615. 6150  SYMBOL(150,380),"フロッピーディスクなら書き込み可能な",1,1,1
  616. 6160  SYMBOL(150,400),"状態にしてください。",1,1,1
  617. 6170  SYMBOL(150,420),"ディスクを確認して下さい。",1,1,2
  618. 6180  BEEP:MOUSE 1,320,240,1:GOSUB *確認:GOSUB *MOUSEOFF
  619. 6190  LINE(0,350)-(639,479),PSET,7,BF:RESUME 310
  620. 6200 ENDIF
  621. 6210 IF ERR=72 AND ERL=200 THEN
  622. 6220  SYMBOL(100,360),"警告:",1,1,2
  623. 6230  SYMBOL(150,360),"ディスクが使用可能な状態になっていません!!",1,1,2
  624. 6240  SYMBOL(150,380),"フロッピーディスクがちゃんと入っていますか?",1,1,1
  625. 6250  SYMBOL(150,400),"ハードディスクの電源が切れていませんか?",1,1,1
  626. 6260  SYMBOL(150,420),"ディスクを確認して下さい。",1,1,2
  627. 6270  BEEP:MOUSE 1,320,240,1:GOSUB *確認:GOSUB *MOUSEOFF
  628. 6280  LINE(0,350)-(639,479),PSET,7,BF:RESUME 200
  629. 6290 ENDIF
  630. 6300 IF ERL=5150 THEN
  631. 6310  LPM=LPM+1:WAIT 80:RESUME 5170
  632. 6320 ENDIF
  633. 6330 GOSUB *画面に線:GOSUB *MOUSEON
  634. 6340 LINE(200,190)-(439,289),PSET,0,BF,7:BEEP
  635. 6350 EE=0:ERMS$="エラー番号 "+STR$(ERR)
  636. 6360 ERLINE$="エラー行   "+STR$(ERL)+"行目"
  637. 6370 IF ERR=2 THEN  ERMS$="文法にミスがあります。":EE=1
  638. 6380 IF ERR=63 AND ERL=130 THEN ERMS$="コンフィグファイルが見つかりません。":EE=1
  639. 6390 IF ERR=83 THEN ERMS$="メモリが足りません。":EE=1
  640. 6400 IF EE=1 THEN ERLINE$="確認して下さい。"
  641. 6410 SYMBOL(260,200),"エラー発生!!",1,1,2,,,1
  642. 6420 SYMBOL(220,230),ERMS$,1,1,1
  643. 6430 SYMBOL(220,260),ERLINE$,1,1,0
  644. 6440 GOSUB *確認:MOUSE 5:END
  645.